package com.shu.logsearch.util;

import cn.hutool.core.io.FileUtil;
import org.springframework.util.StringUtils;

import java.io.File;
import java.util.List;

/**
 * @author Tree Cai
 * @date 2019/7/2
 */
public class MyFileUtil extends FileUtil {
    /**
     * 当前系统的文件分隔符
     */
    public static final String FILE_SEPARATOR = File.separator;

    /**
     * 将路径格式化为当前系统的路径
     * @param path
     * @return
     */
    public static String formatPath(String path) {
        return path.replace("/", FILE_SEPARATOR).replace("\\", FILE_SEPARATOR);
    }

    /**
     * 获得文件夹路径
     *
     * @param path
     * @return
     */
    public static String getDir(String path) {
        if (StringUtils.isEmpty(path))
            return null;
        path = formatPath(path);
        return path.substring(0, path.lastIndexOf(FILE_SEPARATOR) + 1);
    }

    /**
     * 获取目录，如果没有该目录则创建目录
     * @param parentDirPath
     *      父目录
     * @param childDirPath
     *      子目录
     * @return
     */
    public static File getOrCreateDir(String parentDirPath, String childDirPath) {
        AssertUtil.notNull(parentDirPath);
        if (StringUtils.isEmpty(childDirPath))
            return getOrCreateDir(parentDirPath);
        if (!parentDirPath.endsWith("/"))
            parentDirPath += "/";
        return getOrCreateDir(parentDirPath + childDirPath);

    }

    /**
     * 获取目录，如果没有该目录则创建目录
     *
     * @param dirPath
     * @return
     */
    public static File getOrCreateDir(String dirPath) {
        AssertUtil.notNull(dirPath);
        File file = new File(formatPath(dirPath));
        file.mkdirs();
        return file;
    }

    /**
     * 批量删除文件
     * @param fileList
     */
    public static void delete(List<File> fileList) {
        for (File file : fileList)
            del(file);
    }

    public static void main(String[] args) {
        getOrCreateDir("D:/111/1.2/1");
    }
}
